QuickTime Graphics
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
QuickTime Graphics is a lossy video compression and decompression algorithm (codec) developed by Apple Inc. and first released as part of QuickTime 1.x in the early 1990s.cite-ref-multimediawiki-1-0[1] The codec is also known by the name Apple Graphics and its FourCC SMC.cite-ref-ffmpeg-2-0[2]cite-ref-multimediawiki-1-1[1] The codec operates on 8-bit palettized RGB data.cite-ref-multimediawiki-1-2[1] The bit-stream format of QuickTime Graphics has been reverse-engineered and a decoder has been implemented in the projects XAnim and libavcodec.cite-ref-xanim-3-0[3]cite-ref-ffmpeg-2-1[2]
Contents
• See also
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Technical Details
The input video that the codec operates on is in an 8-bit palettized RGB colorspace. Compression is achieved by conditional replenishment and by reducing the palette from 256 colors to a per-4×4 block adaptive palette of 1-16 colors. Because Apple Video operates in the image domain without motion compensation, decoding is much faster than MPEG-style codecs which use motion compensation and perform coding in a transform domain. As a tradeoff, the compression performance of Apple Graphics is lower. The decoding complexity is approximately 50% that of the QuickTime Animation codec.cite-ref-qtguide-4-0[4]
Each frame is segmented into 4×4 blocks in raster-scan order. Each block can be coded in one of the following coding modes: skip mode, single color, 2-, 4-, and 8 color palette modes, two repeat modes, and PCM.
Skip mode
The skip mode realizes conditional replenishment. If a block is coded in skip mode, the content of the block at same location in the previous frame is copied to the current frame.cite-ref-multimediawiki-1-3[1] Runs of skip blocks are coded in a run-length encoding scheme, enabling a high compression ratio in static areas of the picture.cite-ref-multimediawiki-1-4[1]
Single color
In single color mode, the entire 4×4 block is painted with a single color.cite-ref-multimediawiki-1-5[1] This mode can also be considered as a 1-color palette mode.
Palette (2, 4, or 8-color) modes
In the palette modes, each 4×4 block is coded with a 2, 4, or 8-color palette.cite-ref-multimediawiki-1-6[1] To select one of the colors from the palette, 1, 2, or 3 bits per pixel are used, respectively. The palette can be written to the bitstream either explicitly or as a reference to an entry in the palette cache.cite-ref-multimediawiki-1-7[1] The palette cache is a set of three circular buffers which store the 256 most recently used palettes, one each for of the 2, 4, and 8-color modes.cite-ref-multimediawiki-1-8[1]
Interpreted as vector quantization, three-dimensional vectors with components red, green, and blue are quantized using a forward adaptive codebook with between 1 and 8 entries.
Repeat modes
There are two different repeat modes.cite-ref-multimediawiki-1-9[1] In the single block repeat mode, the previous block is repeated a specified number of times.cite-ref-multimediawiki-1-10[1] In the two block repeat mode, the previous two blocks are repeated a specified number of times.cite-ref-multimediawiki-1-11[1]
PCM (16 color) mode
See also
• Block truncation coding, a similar coding technique for grayscale content
• Color Cell Compression, a similar coding technique for color content, based on block truncation coding
• Apple Video, a codec based on a similar design
• Microsoft Video 1, a codec based on a similar design
• Smacker video, a codec based on a similar design
• S3 Texture Compression, a texture compression format based on a similar design
References
cite-note-multimediawiki-11. ↑ "Apple SMC". MultimediaWiki. 26 April 2011. Archived from the original on 15 May 2013. Retrieved 4 May 2013.
cite-note-ffmpeg-22. ↑ "FFmpeg Documentation". FFmpeg. Archived from the original on 29 June 2014. Retrieved 4 May 2013.
cite-note-xanim-33. ↑ citerefmark-podlipec1997Mark Podlipec (10 December 1997). "xanim.2.70.6.4.2 README". XAnim. Archived from the original on 28 December 2015. Retrieved 4 May 2013.
cite-note-qtguide-44. ↑ "QuickTime Compression and Decompression Guide" (PDF). Apple Computer, Inc. 10 January 2006. Retrieved 4 May 2013.
External links